|
NX Programmierung : Frage zur NXOpen Funktion GetAllObjectsOnLayer
oehrnie am 09.04.2009 um 12:40 Uhr (0)
NX 5.0/UGDOC/html_files/nxopen_c++_ref/a01185.htmlDa steht in der NXOpen::Layer::LayerManager Class Reference:std::vector NXOpen::NXObject * GetAllObjectsOnLayer (int layer) Returns all objects on the specified layer. Nicht alle VB Typen gibts in C++ und umgekehrt. Auch die Behandlung der Argumente ist anderes, sind eben unterschiedliche Programmiersprachen...
|
In das Form NX Programmierung wechseln |
|
NX Programmierung : Frage zur NXOpen Funktion GetAllObjectsOnLayer
oehrnie am 09.04.2009 um 12:16 Uhr (0)
Das trifft nur auf VB zu.In der C++ Doku steht als Rückgabetypstd::vector NXOpen::NCObject* Es wird also ein Vektor mit Zeigern auf die Objekte zurückgeliefert.Der Teufel steckt hier im Detail der Zuweisung, der Fehler tritt bei der = Zuweisung auf.Gibt es jemand, der NXOpen und C++ Guru ist, der hier eine Idee hat?[Diese Nachricht wurde von oehrnie am 09. Apr. 2009 editiert.]
|
In das Form NX Programmierung wechseln |
|
NX Programmierung : Frage zur NXOpen Funktion GetAllObjectsOnLayer
oehrnie am 09.04.2009 um 11:17 Uhr (0)
Hallo,in VB ist es kein Problem, ich brauche es allerdings in c++Das Problem ist halt, das man der Doku nicht entnehmen kann, was genau zurückgeliefert wird (Value/Referenz auf den Vektor, Value oder Referenz der Element des Vektors). http://uganswer.ugs.com hat nur genau einen Verweis auf die Funktion, in der sie als Ersatz für eine nicht funktionierende Funktion angegeben wird (ohne jede weitere Info). Ein c++ Beispiel das eine Funktion benutzt, die einen Vektor zurück liefert habe ich leider noch nicht ...
|
In das Form NX Programmierung wechseln |
|
NX Programmierung : Frage zur NXOpen Funktion GetAllObjectsOnLayer
oehrnie am 08.04.2009 um 16:11 Uhr (0)
Ich möchte mir gerne die Objekte auf einem bestimmten Layer zurückgeben lassen.und verwende den CodeCode: int errorCode = UF_initialize(); NXOpen::Session *theSession = NXOpen::Session::GetSession(); int layer = layerLayer-ItemValue(); NXOpen::Part* pWorkpart = theSession-Parts()-Work(); NXOpen::Layer::LayerManager* pLayerMan = pWorkpart-Layers(); vector NXOpen::NXObject* objVector = pLayerMan-GetAllObjectsOnLayer( layer ); errorCode = UF_terminate();Die fett gedruckte Zeile ist das P ...
|
In das Form NX Programmierung wechseln |
|
NX Programmierung : Frage zur NXOpen Funktion GetAllObjectsOnLayer
oehrnie am 14.04.2009 um 16:03 Uhr (0)
Es war der Deallokator. Die Zuweisung klappte schließlich prima, wenn aber das Programm den aktuellen (try -) Block verließ, wurde laut Debugger intern die tidy() Methode von der std::vector - Klasse aufgerufen, der dann besagte Fehlermeldung lieferte. Recht hat er aber, der Compiler. NX liefert im Vektor die Elemente zurück die ich haben möchte und die möchte das NX dann aber auch gerne weiter behalten. Der Destruktor versucht die aber sauber aufzuräumen. Also die Variable auf static gesetzt und Compiler ...
|
In das Form NX Programmierung wechseln |